home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / epsilon / pending.py < prev    next >
Text File  |  2009-03-13  |  606b  |  27 lines

  1.  
  2. from twisted.internet.defer import Deferred
  3. from twisted.python.failure import Failure
  4.  
  5. class PendingEvent(object):
  6.     def __init__(self):
  7.         self.listeners = []
  8.  
  9.     def deferred(self):
  10.         d = Deferred()
  11.         self.listeners.append(d)
  12.         return d
  13.  
  14.     def callback(self, result):
  15.         l = self.listeners
  16.         self.listeners = []
  17.         for d in l:
  18.             d.callback(result)
  19.  
  20.     def errback(self, result=None):
  21.         if result is None:
  22.             result = Failure()
  23.         l = self.listeners
  24.         self.listeners = []
  25.         for d in l:
  26.             d.errback(result)
  27.